﻿/// <Summary> 
/// $Author: Nikhil Chinchwade 
/// This file contains a class representing a result row object from Azure monitoring results

/// $Creation Date : 
/// </summary>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.WindowsAzure.StorageClient;
using Microsoft.WindowsAzure.StorageClient.Protocol;
using Microsoft.WindowsAzure.StorageClient.Tasks;

namespace MindTree.PerfWorkbench.Azure.Monitor.AzureMonLib
{
    /// <summary>
    /// This class represents a performance results row 
    /// </summary>
    public class PerfDataRow : TableServiceEntity
    {
        /// <summary>
        /// Constructor
        /// </summary>
        public PerfDataRow()
            : base()
        {
        }
        
        /// <summary>
        /// Parameterised Constructor 
        /// </summary>
        /// <param name="partitionKey">Partition Key</param>
        /// <param name="rowKey">Row Key</param>
        public PerfDataRow(string partitionKey, string rowKey)
            :base(partitionKey,rowKey)
        {
        }
        
        private Int64 eventTickCount;

        /// <summary>
        /// Azure diagnostics event tick count
        /// </summary>
        public Int64 EventTickCount
        {
            get
            {
                return eventTickCount;
            }
            set
            {
                eventTickCount = value;
            }
        }

        private String deploymentId;

        /// <summary>
        /// Azure app deployment Id
        /// </summary>
        public String DeploymentId
        {
            get
            {
                return deploymentId;
            }
            set
            {
                deploymentId = value;
            }
        }

        private String role;

        /// <summary>
        /// Azure role for which disgnostics information is published
        /// </summary>
        public String Role
        {
            get
            {
                return role;
            }
            set
            {
                role = value;
            }
        }

        private String roleInstance;

        /// <summary>
        /// Azure role instance for which diagnostics information is published
        /// </summary>
        public String RoleInstance
        {
            get
            {
                return roleInstance;
            }
            set
            {
                roleInstance = value;
            }
        }

        private String counterName;


        /// <summary>
        /// Peformance Counter Name
        /// </summary>
        public String CounterName
        {
            get
            {
                return counterName;
            }
            set
            {
                counterName = value;
            }
        }

        private Double counterValue;

        /// <summary>
        /// Performance Counter Value
        /// </summary>
        public Double CounterValue
        {
            get
            {
                return counterValue;
            }
            set
            {
                counterValue = value;
            }
        }

     }
}
